<?php
/**
 * Singleton.php class file.
 * @author wudg <544038230@qq.com>
 * @date 2020/10/22- 3:02 下午
 */
namespace common\traits;
trait Singleton
{
    //创建静态私有的变量保存该类对象
    static private $instance;

    //防止使用new直接创建对象
    private function __construct(){}

    //防止使用clone克隆对象
    private function __clone(){}

    /**
     * 单例形式
     * @param mixed ...$args
     * @return static
     */
    static function getInstance(...$args)
    {
        if(!isset(self::$instance)){
            self::$instance = new static(...$args);
        }
        return self::$instance;
    }
}